import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    // 登录成功后，存储token字符串
    token: sessionStorage.getItem('token'),
    cart: {},  // 购物车
    loc: '北京市', // 城市名称
    // user用于存储当前用户, 初始化赋值为storage中存储的用户
    user: sessionStorage.getItem('user') ?
      JSON.parse(sessionStorage.getItem('user')) : '',

  },
  getters: {
  },
  mutations: {
    // 保存token
    saveToken(state, payload) {
      state.token = payload
      sessionStorage.setItem('token', payload)
    },

    updateUserInfo(state, payload) {
      // 将用户传过来的登录成功的use对象存入state.user
      state.user = payload
      // 存入vuex后还不够，还需要存入sessionStorage
      sessionStorage.setItem(
        'user', JSON.stringify(payload))
    }
  },
  actions: {
    login(store, payload) {
      // 执行异步任务，发送请求，得到结果后
      // store.commit('updateUserInfo', 用户对象)
    }
  },
  modules: {
  }
})
